home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / VOXRAY.ZIP / GLOBALS.C < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-16  |  3.9 KB  |  131 lines

  1. #include "ray.h"
  2. #include "rayrt.h"
  3.  
  4. pobject the_player; // object which holds the numero uno player
  5.  
  6. short Number_Of_Textures;
  7. wall_entry * wall; // The wall textures
  8. USHORT Number_Of_FTs;
  9. wall_entry     *floortex; // The floor textures
  10.  
  11. short WINDOW_HEIGHT; // The screen size constants
  12. short WINDOW_MIDDLE;
  13. short WINDOW_WIDTH; // the width of the window
  14. short WINDOW_MIDDLEW; // the center of the window on the x axis
  15. angle_type HORIZ_VIEW_RANGE;
  16. long SCALE_FACTOR; //used for sprites
  17. short VERTICAL_VIEW_RANGE;
  18. unsigned long VERTICAL_SCALE;
  19. angle_type VERTICAL_VIEW_ANGLE;
  20.  
  21. Ptr buff, back;
  22. Byte  *sliver_texture; // pointer to texture being rendered
  23. int sliver_column;        // index into texture i.e. which column of texture
  24. int sliver_top;           // starting Y position to render at
  25. int sliver_scale;         // overall height of sliver
  26. int sliver_ray;           // current ray being cast
  27. int sliver_clip;          // index into texture after clipping
  28. Byte * sliver_light; // Index to palette with correct level of 
  29.         //light to draw
  30.  
  31. Byte *scale_row;           // row of scale value look up table to use
  32. MYFIXED sliver_inc_y; // incrementer to y pos in bitmap
  33. long sliver_and_x, sliver_and_y; // values to make sure we don't run off texture
  34.  
  35. wall_run_info * wall_runs ; // array of wall runs used in rendering
  36. long wall_run_count; // how many runs to draw?
  37.  
  38. floor_run_info * floor_runs; // array of floor runs used in rendering
  39. long floor_run_count; // how many runs to draw?
  40.  
  41. long * distance_table; // table to hold distances to floors and ceilings for
  42.                         // each ray
  43. //long * movement_table; // table for stepping across the texture at a given scan line
  44.  
  45. long  *tan_table;              // tangent tables used to compute initial
  46. long  *inv_tan_table;          // intersections with ray
  47.  
  48. long  *cos_table;              // used to cancel out fishbowl effect
  49.  
  50. long  *inv_cos_table;          // used to compute distances by calculating
  51. long  *inv_sin_table;          // the hypontenuse
  52.  
  53. long    *rcos_table;
  54. long    *rsin_table;
  55.  
  56. Byte * * pal_table; // The light palette array      
  57.  
  58. MYFIXED   *height_table; // scales wall height relative to distance
  59.  
  60. MYFIXED   *middle_table; // used to correct for looking up + down
  61.  
  62. MYFIXED y_inv_trans; // variable to help calculate speed at which to move across wall texture
  63.  
  64. MYFIXED y_trans; // variable to translate distance to a screen height scaler
  65. MYFIXED x_inv_trans; // same but for floors
  66. MYFIXED vert_angle_tangent; // variable to calculate view height is a given distance away
  67. // Globals to hold the world!
  68.  
  69. USHORT Number_Of_Vectors;
  70. USHORT Number_Of_Sidedefs;
  71. USHORT Number_Of_Linedefs;
  72. USHORT Number_Of_Sectors;
  73. USHORT Number_Of_Segs;
  74. USHORT Number_Of_SSectors;
  75. USHORT Number_Of_Nodes;
  76.  
  77. vector2 * Vector_List;
  78.  
  79. sidedef * Sd_List; 
  80.  
  81. linedef * Ld_List;
  82.  
  83. sector * Sector_List;
  84.  
  85. seg * Seg_List;
  86.  
  87. ssector * SS_List; // no, this is not a reference to a Nazi secret police census report.
  88.  
  89. bsp_node * bsp_tree; // The mother of all data structures- the binary space partition
  90.                                       // By day, a simple runtime allocated array- but by night, a static
  91.                                       // binary tree we will use to render at warp speed
  92.  
  93. long bsp_start_node; // holds the first node in the bsp tree, usually 0
  94.  
  95. wall_entry * sky_texture;
  96.  
  97. // Rendering Data
  98.  
  99. MYFIXED
  100. Win_Top_Sum, Win_Height_Sum,
  101. Win_Top_Increment, Win_Height_Increment;
  102.  
  103. short WINDOW_LEFT, WINDOW_RIGHT;
  104.  
  105. long cur_angle_diff, intercept;
  106.  
  107. long render_x, render_y, render_z, render_view_angle;
  108.  
  109. MYFIXED vec_int_x, vec_int_y;
  110.  
  111. long rotate_x, rotate_y, rotate_angle;
  112.  
  113. long int_x_diff;
  114.  
  115. long ray_slope;
  116.  
  117. long int_y_diff;
  118.  
  119. tex_mark * tex_mark_table;
  120.  
  121. clip_info_list * column_data;
  122.  
  123. clip_info_node * clip_info_array;
  124.  
  125. clip_info_list next_free_node_cl;
  126.  
  127. vb_node_index vb_next_free_node, vb_start_node;
  128.  
  129. vb_node * bounds;
  130.  
  131.